﻿/*
   Author: Tomer Paz
   BOGO.com
   2009
*/

/* Multi-Language handling Interface defintion */

package monopoly.Localization {
	import flash.system.Capabilities;
	
	public interface ILocalLanguage 
		{
		/* my language property */
		
		function set MyLang(lang:String):void		// set MyPlayer selected language
		function get MyLang():String;				// get MyPlayer selected language
		
		/* general layout text */
		
		function get GameInfo():String;				// "Game Info"
		function get ActionsHistory():String;		// "Actions History"
		function get Chat():String;					// "Chat"
		// player status
		function get StatusCash():String;			// "Cash"
		function get StatusDiesRes():String;		// "Last Dies results: "
		function get StatusEmptySlot():String;		// "Empty"
		function     StatusHasQuit(pname:String):String;	// "%s has Quit"
		function     StatusCCash(pname:String, pcash:int):String;	// "%s Cash Status: %d"
		/* game popup messages */
		
		// join, start, view game
		function get MsgJReady():String;				// "Ready to Join?"
		function get MsgJText():String;					// "As Player, click the 'Join' button, as Viewer click 'View'"
		function get MsgJoinWait():String;				// "Waiting for other Players to join..."
		function get MsgJSReady():String;				// "Ready to Compete?"
		function get MsgJSText():String;				// "Click the 'Start' button when you are ready to go."
		function     MsgJSWaitPlayer(pname:String):String; // "Waiting for Player: " + player.Name
		
		// bank messages
		function get MsgBankApproveReq():String;		// "The Bank Approved your request"
		function     MsgBankBuyProperty(prname:String, fcost:int):String; // "Buying " + bankDialog.field.PropertyName + " for " + bankDialog.field.Cost + "$ from Bank"
		// waiting server message
		function get MsgWaitServer():String;			// "Waiting for server reponse..."
		// 6xx messages and Server response messages
		function get MsgAcceptRejectTitle():String;		// "Accept/Reject offer"
		function get MsgAccept():String;				// "Accept";
		function get MsgReject():String;				// "Reject";
		function get MsgReqSuccess():String;			// "Opponent has accepted your offer"
		function get MsgResReply():String;				// "reply"
		// auction messages
		function     MsgAucIOffer(sum:int):String;		// "You offered: " + int(auctionDialog.Data) + ",\n Waiting for other players Offering..."
		function get MsgAucPlayersOffer():String;		// "Waiting for players Offering..."
		function     MsgAucPlayerPass(pname:String):String;	// "Player " + SelectPlayerByID(partnerID).Name + ", has chosen to Pass"
		function     MsgAucPlayerOffer(pname:String, sum:int):String; // "Player " + SelectPlayerByID(partnerID).Name + ", has Offered: " + sumOfDeal
		function get MsgAucEveryonePass():String;		// "everyone passed"
		function     MsgAucSuccess(plname:String, prname:String, sum:int):String; // "Congrats! " + SelectPlayerByID(winnerID).Name + " \nhas Purchased " + field.PropertyName + " property for: " + sum + "$"
		// upgrade messages
		function get MsgUpgMaxLevel():String			// "Property Already at Maximum Level.\n You can't upgrade it further"
		function get MsgUpgNoCash():String;				// "Sorry, You can't upgrade. You do not have enough cash :("
		function get MsgUpgError():String;				// "Upgrade Failed for some reason :( \n Please try again"
		function get MsgUpgUprading():String;			// "Upgrading Property..."
		function get MsgUpgSuccess():String;			// "Upgrade Completed Successfully!"
		// pay/buy messages
		function     MsgPayOwner(fee:int, pname:String):String;  // "Paying " + fee + "to" + field_owner, the Owner of this property..."
		function get MsgPurchaseSuccess():String;		// "Purchase completed Successfully."
		function get MsgBuyReject():String;				// "Opponent has Rejected your BUY offering"
		function     MsgBuyOffer(plname:String, prname:String):String; // "Player: " + SelectPlayerByID(partnerID).Name + "\n would like to Buy your property: " + getFieldbyID(fieldID).PropertyName

		// sell messages
		function get MsgSellReject():String;			// "Opponent has Rejected your SELL offering"
		function     MsgSellWait(pname:String):String;	// "Waiting for player " + SelectPlayerByID(sellDialog.Data[SellDialog.PLAYER_ID]).Name + ", to reply"
		function     MsgSellOffer(plname:String, prname:String):String; // "Player: " + SelectPlayerByID(partnerID).Name + "\n would like to Sell you property: " + getFieldbyID(fieldID).PropertyName
		function     MsgSellIOffer(prname:String, plname:String, fcost:int):String;	// "Offering to buy " + playerNegotiate.field.PropertyName + " from " + playerNegotiate.field.Owner.Name + " for " + playerNegotiate.field.Cost + "$"
		// exchange messages
		function get MsgExchangeReject():String;		// "Opponent has Rejected your EXCHANGE offering"
		function     MsgExchangeOffer(plname:String, prname:String):String; // "Player: " + SelectPlayerByID(partnerID).Name + "\n would like to Exchnge his property: " + getFieldbyID(fieldID).PropertyName + ", with you"
		// partner messages
		function get MsgPartnerReject():String;			// "Opponent has Rejected your PARTNER offering"
		
		// end turn
		function get MsgEndTurnTitle():String;			// "End Turn"
		function get MsgEndTurnText():String;			// "click to end turn:"
		// game over, quit, resign
		function get MsgGameOver():String;				// "GAME OVER! stay around to view your friends..."
		// end game (resign)
		function get MsgResignLabel():String;			// "Resign"
		function get MsgResignTitle():String;			// "Quit Game?"
		function get MsgResignText():String;			// "Are you Sure you want to quit?"
		function get MsgResignYes():String;				// "Yes"
		function get MsgResignNo():String;				// "Regret"

		
		/* dialogs */
		
		function get DlgRadioDone():String;				// "Done"
		
		// auction dialog
		function     DlgAucLabelMOffer(prname:String, sum:int):String;  // "Price of " + _field.PropertyName + " is: " + _field.Cost + ". \nKindly Enter Your Minimum Auction Price:"
		function     DlgAucLabelNOffer(prname:String, sum:int):String; // "Last offer for " + _field.PropertyName + " was: " + _data + ". \nKindly Enter Your Offer:"
		// bank dialog
		function get DlgBankLabel():String;		// "Buy property?"
		function     DlgBankText(fcost:int, myCash:int):String; // "Prperty price is: " + _field.Cost + ".\n Your current cash is: " + _myPlayer.Cash
		function get DlgBankBuy():String;		// "Buy"
		function get DlgBankPass():String;		// "Pass"
		function get DlgBankShort():String;		// "Short in Money"
		// join/view/start dialog
		function get DlgJVSJoin():String;		// "Join"
		function get DlgJVSStart():String;		// "Start"
		function get DlgJVSView():String;		// "View"
		// mortgage dialog
		function get DlgMortgageLabel():String; // "Choose Properties to Mortgage:"
		function     DlgMortgageText(owed:int):String; // "Money Owed: " + _moneyOwed + "\nTotal Sum: "
		function	 DlgMortgageUpd(owed:int, sum:int):String // "Money Owed: " + _moneyOwed + "\nTotal Sum: " + _sum
		// play dialog
		function get DlgPlayDiesOption():String;	// "Throw Dies"
		function get DlgPlayActionOption():String;	// "Properties actions"
		function get DlgPlayLabel():String;			// "Your Turn"
		function get DlgPlayText():String;			// "make your move: "
		// player negotiate dialog
		function get DlgNegPartnerOption():String;	// "Propose Partnership"
		function get DlgNegExchangeOption():String;	// "Exchange Property"
		function get DlgNegBuyOption():String;		// "Propose Buy"
		function get DlgNegPassOption():String;		// "Pass"
		function     DlgNegText(pname:String, pcash:int):String; // "Negotiate property with: " + other_player.Name + ".\n" + other_player.Name + " Cash is: " + other_player.Cash
		function get DlgNegLabel():String;		// "Negotiate property"
		// pre-dies dialog
		function get DlgPreDiesSellOption():String;		// "Sell"
		function get DlgPreDiesAucOption():String;		// "Auction"
		function get DlgPreDiesMortOption():String;		// "Mortgage"
		function get DlgPreDiesUpgrade():String;		// "Upgrade"
		function get DlgPreDiesReturn():String;			// "Return"
		function get DlgPreDiesLabel():String;			// "My Properties Actions"
		function get DlgPreDiesText():String;			// "What action would you prefer? "
		// sell dialog
		function     DlgSellText(prname:String, fcost:int):String; // "Price of " + _field.PropertyName + " is: " + _field.Cost + ". \nKindly Enter Your Offer:";
		function get DlgSellPOption():String;			// "choose player"
		// upgrade dialog
		function get DlgUpgradeLabel():String;			// "Upgrade Property"
		function     DlgUpgradeLevel(level:int, cost:int):String;  // "Upgrade Level %d. Cost: %d"
		function get DlgUpgradePass():String;			// "Pass"
		function     DlgUpgradeText(pname:String):String;		   // "Your Property: %s, can be Upgraded.\n Choose one of the following Levels";
		}
}